This invention relates, in general, to a method of configuring a system and a method of establishing a connection in such a system. More particularly, but not exclusively, the present invention relates to a communication system that utilises object-orientated code to construct a routing matrix used to establish a connection in a telephony system, such as a mixed broadband-narrowband network.
Telecommunication networks comprise nodes interconnected by communication resources (usually termed xe2x80x9clinksxe2x80x9d), with a particular network technology characterised by the means of transmission of user and control information along these links and also by the routing and relaying functions embodied in the nodes. A connection from a calling party to a called party is actually achieved through an appropriate selection of a communication path, which path is determined on the basis of several decisions made by routing logic contained within switch fabrics of a network (or interconnected system of networks).
A typical switch fabric logically contains a controller (sometimes referred to as computing module or call server) that interfaces directly with a master database of network management information generally pertaining to network topology (and more especially control information). The controller is further responsible for overseeing specific call connections (e.g. trunk to trunk connections) that are managed by lower level intelligent trunking peripherals. Each lower level intelligent device functions to provide a termination for trunks (or equivalent forms of channel resource) and includes a routing function, typically in the form of an algorithm. In other words, the controller manages intelligent peripherals within the switch fabric and invokes feature codes and oversees the set-up of circuit-to-circuit (in a narrowband sense) and circuit-to-virtual path connections across a broadband interface, whereas the router function identifies a path down which control information from the controller is sent to an addressed unit. This form of distributed architecture is preferred by virtual of its flexibility, increased handling capacity over a stand-alone routing unit and its ease of upgrade, although the controller does have a limited processing capability and can only support a limited number of peripheral entities and connections.
Routing information from the controller is down-loaded to the intelligent peripherals, with the download occurring in chunks of data that are assembled at the intelligent peripheral to form a complete understanding of its available connection topology. Download can occur in response to network adaptation, such as the addition of new hardware or connection paths, but in any event is generally triggered at installation. More particularly, information download to the intelligent peripherals is presently accomplished in a multi-stage, piecewise process in which each class is assembled from the separate receipt of configuration information and availability information pertaining to confirmation of the actual physical existence of the class. In other words, in order to construct a valid object, the intelligent peripheral must receive a full complement of configuration messages; these being sent over a period of time in at least two separate bits from the controller. The configuration messages can arrive in any order.
By way of further clarification, it will be appreciated that a specific route set, a specific link set and a specific link are, in fact, all objects and that an object is therefore a combination of a set of data and a set of behaviour. Moreover, xe2x80x9cbehaviourxe2x80x9d explains the interaction of data and thus allows the setting up of relationships through the issuance, for example, of commands or questions. Any response is therefore specific to a particular activity involved in setting up a call. Finally, to expound the relation between objects and class, it will be understood that shared behaviour between objects in endemic of the same class of objects. Each object is uniquely identifiable.
In the context of this description, it will be understood that the switch fabric is an integral part of the control network associated with each trunk, and so the term trunk implies the co-existence of an associated signalling link.
The term routing is used to describe the process of determining the path the information will take through the network, while relaying is the process of transferring information from one link to another, i.e. the information is merely passed, without alteration, from one channel resource to another.
As regards connection paths within a network, nodes (i.e. switch fabrics) are generally interconnected either by a direct communication resource or via at least one other node. Putting this another way, a trunk that is incident to a first node will be connected by the intelligent peripheral in the first node to one of a number of possible links that is believed to connect to an exit node associated with the called party. From an information perspective, each node (and particularly each intelligent peripheral by virtue of download from the switch fabric controller) is aware of certain classes of information, namely: i) route sets associated with destination nodes (e.g. switch fabrics respectively associated with Glasgow, New York and Amsterdam); ii) link sets identifying possible connection paths to the destination node; and iii) links that are connection specific. A link set will usually contain many links, whereas a route set will contain at least one link set identity together with an associated xe2x80x9ccostxe2x80x9d (or weighting factor) indicating a ranking preference for selection of a particular link set. As regards the xe2x80x9ccostxe2x80x9d, a direct point-to-point connection from an incident switch fabric to a destination switch fabric is likely to have a preferable cost as opposed to an indirect route via an intermediate switch fabric.
From an actual connection perspective, the intelligent peripheral reacts to an incoming call establishment request by finding the route set object of the destination address (which is typically derived by the dialled digits entered by the calling party). The intelligent peripheral then looks in the route set object for link sets before identifying the link set (usually) having the cheapest cost. The intelligent peripheral checks for the availability of the selected link set and then finally chooses a specific link therefrom. Information can then be sent. Basically, the various layers of selection provide robustness in routing; the process is generally known as message transfer part (MTP) routing and is part of the Common Channel Signalling No. 7 (CCS-7) protocol.
In relation to an exemplary narrowband digital network, user and control information (generally termed xe2x80x9cdataxe2x80x9d) may be interleaved, using time division multiplexing (TDM), on a pulse code modulated (PCM) bearer channel. Data is then relayed across a node by some form of synchronous TDM switching fabric, often of the xe2x80x98time-space-timexe2x80x99 type. Control information (e.g. call set up and tear down messages) logically follows the same path (although not always the same physical path) through the network as user information, and is terminated in each node for routing purposes. Routing is conventionally performed, in each node, on a xe2x80x98hop-by-hopxe2x80x99 basis using long lived routing tables, i.e. the node is sufficiently intelligent to determine an optimum route for the succeeding network connection.
Control information is regulated by a signalling scheme that is distinctive to the type of network employed. Particularly, public signalling systems are used between nodes of a public network and between public networks of different operators. Signalling System No. 7 is the only important example of a public signalling system. Access signalling systems are used between subscribers and edge nodes of public networks, e.g. between a radiotelephone and a base station subsystem (BSS). In fact, the most common digital access signalling schemes are Common Channel Signalling Systems, such as the Integrated Service Digital Network (ISDN) DSS1 signalling schemes (and its predecessors) and Channel Associated Signalling schemes that are both derived from analog signalling. Private schemes are generally derived from access schemes but provide richer functionality within personal networks, such as within a secure private branch exchange (PBX).
Broadband digital networks are characterised in that user and control information is transmitted in fixed or variable length xe2x80x98packetsxe2x80x99, with these packets prepended with headers that contain bearer channel identification. In contrast with narrowband systems, user information is relayed across a node via an asynchronous switching fabric that examines each packet in turn (using some kind of fairness algorithm) and directs it to the appropriate output link in response to the input link and bearer channel identification. Routing and control information transmission is, however, similar to that for the narrowband case, and differs only inasmuch as the signalling schemes are technology specific.
Narrowband telecommunication architectures, such as the DMS(trademark) exchange manufactured by Northern Telecom Limited, provide a foundation for mixed and, ultimately, solely broadband-based systems. In fact, the DMS(trademark) exchange already provides a full set of call processing and routing features by virtue of its development over many years, with the DMS(trademark) exchange supported by many millions of lines of program code.
Present systems are, however, deficient in their operation since they work on an assumption that each object is always available once at least one portion of the related information is downloaded to the intelligent peripheral from the controller. More specifically, the intelligent peripheral is configured to assume that it will always receive the full complement of information necessary for construction of a valid object after it has previously been sent a first (relevant) information portion. Consequently, although a valid object may not therefore exist, the routing mechanism can get tied-up in an endless search loop whereby system operation is compromised. Moreover, since the intelligent peripheral effectively has direct access to configuration data, the routing algorithm may make decisions based on a partially configured object that results in messages being lost or sent to a wrong destination.
Unfortunately, present systems are also sensitive to the order in which configuration messages are received by the intelligent peripheral. In fact, configuration messages must be received in a pre-set order otherwise messages can be lost or the system can be mis-configured, with the later mis-configuration usually undetectable.
Previous solutions to the problem outlined above involve the pre-allocation of a fixed number of objects at the intelligent peripheral. Unfortunately, pre-allocation requires the use of all available memory regardless of the complexity of the network configuration. Consequently, additional memory and processing capacity must be provided to the intelligent peripheral if a system up-grade is required by a network operator; this is usually expensive and inevitably leads to some down-time for reconfiguration.
According to a first aspect of the present invention there is provided a method of configuring a communication system comprising a call server responsible for overseeing connection of a call and a node providing a connection interface to a calling party making the call and wherein the node is logically responsive to the call server and the connection is established through the use of at least one object, the method comprising: receiving a first configuration message associated with an object, the first configuration message sent by the call server and containing information pertinent to the effective establishment of the object at the node; establishing a routing object index associated with the object in response to the first configuration message and storing the information contained in the first configuration message as a partial object; receiving at least a second configuration message associated with the object, said at least a second configuration message sent by the call server and containing additional information pertinent to the effective establishment of the object at the node; recording receipt of said at least a Second configuration message and storing the additional information contained in said at least a second configuration message with the partial object, thereby to complete the object; and providing access to the object at the node through a verification process involving the routing object index.
In a preferred embodiment, providing access to the object further includes: establishing whether the routing object exists; and establishing whether the routing object is deemed fully configured.
Preferably, the routing object has a plurality of configuration fields each being deemed complete upon respective receipt of said first configuration message and said at least a second configuration message.
Typically, the routing object index shares a common name with the object with the name derived from the first configuration message.
A method of a preferred embodiment includes sending a further configuration message from the call server, the further configuration message containing information pertinent to the object and arranged to affect operation of the object.
In another embodiment, the method of configuring a communication system comprises: retrieving the object when the routing object is fully configured; selecting, as necessary, a related object from the object; and searching for a second routing object index associated with the related object, which second routing object index is located within the object.
Establishing whether the second routing object exists and whether the second routing object is deemed fully configured is a layered process inasmuch as a connection may require the use of many objects and each object will therefore have a dedicated routing object index.
Since a routing object contains a plurality of configuration fields, a preferred method of configuring a communication system comprises initiating a tracking request in which a status of the plurality of configuration fields of a routing object is interrogated and commented on.
A connection is only established when the verification process indicates that the routing object index and is deemed fully configured.
In another aspect of the present invention there is provided a method of establishing a communication link between a calling party and a called party addressed by the calling party in a communication system containing a plurality of routing nodes operationally responsive to a call server, the method comprising: having the calling party enter an address of the called party into a first routing node, the address containing an indication of a destination routing node associated with the called party and wherein the destination routing node is accessed via a communication path determined by a plurality of objects; providing access to selected ones of the plurality of objects at the node through a verification process involving a dedicated routing object index associated with each object.
In a preferred method, providing access to the object further includes: establishing whether the routing object exists; and establishing whether the routing object is deemed fully configured.
The routing object is established by a plurality of temporally displaced configuration messages communicated to selected nodes by the call server, wherein: the routing object is created following receipt of a first configuration message associated with an object, the first configuration message containing information pertinent to the effective establishment of the object at the node; a partial object is created from the first configuration message; and the routing object is deemed to be complete upon subsequent receipt at the node of at least a second configuration message associated with the object, said at least a second configuration message sent by the call server and containing additional information pertinent to the effective operational establishment of the object at the node, when combined with the first configuration message stored previously as the partial object.
The method further includes recording receipt of said configuration messages in the routing object and storing information contained in said configuration messages as the object. Preferably, the routing object has a plurality of configuration fields each being deemed complete upon respective receipt of said configuration messages.
In another aspect of the present invention there is provided a communication system comprising a call server responsible for overseeing connection of a call and a plurality of nodes providing a connection interfaces between a calling party and an addressed party, wherein the plurality of nodes are logically responsive to the call server and the connection is established through the use of at least one object within a node, each node comprising: a memory having dedicated routing object indexes associated with objects, each routing object index created by the node in response to configuration messages sent by the call server and associated with a specific object, and a keyed index of objects accessible via specifically associated routing object indexes; and a processor arranged, in use, to administer receipt and storage of the configuration messages as objects and the creation of the dedicated routing object indexes, the processor further operationally responsive to an address of the addressed party whereby the processor is arranged to provide access to a selected object at the node only through a configuration verification process involving the routing object index.
In a further aspect of the present invention there is provided an intelligent trunking peripheral for routing calls in a communication system, the intelligent trunking peripheral comprising: a memory having dedicated routing object indexes each associated with objects, each routing object index created by the switch in response to configuration messages sent by the call server and associated with a specific object, and a keyed index of objects accessible via specifically associated routing object indexes; and a processor arranged, in use, to administer receipt and storage of the configuration messages as objects and the establishment of the dedicated routing object indexes, the processor further operationally responsive to an address whereby the processor is arranged to provide access, at the switch, to a selected object required to establish a communication path to the address only through a configuration verification process involving the routing object index.
In still yet another aspect of the present invention there is provided a computer program product for a computerised intelligent trunking peripheral including a processor for selecting a communications path to an addressed party, the computer program product comprising: code that directs the processor to create dedicated routing object indexes each associated with objects each configured at the computerised intelligent trunking peripheral by a plurality of configuration messages code that directs the processor to store a keyed index of objects derived from information contained in the plurality of configuration messages; code providing access to a selected one of the keyed index of objects via an operationally configured routing object index; and code rejecting the set-up of communications paths to an addressed party in the event that a routing object is deemed not to be fully configured by virtue of the processor not having received all necessary configuration messages required for configuration of an associated object.
Generally, the code resides in a computer readable memory.
In a further aspect of the present invention there is provided a computer program product directly loadable into the internal memory of a computer, comprising software code portions for performing the steps of: receiving a first configuration message associated with an object, the first configuration message sent by a call server and containing information pertinent to the effective establishment of the object at a routing node of a telecommunications network; establishing a routing object index associated with the object in response to the configuration message and storing the information contained in the first configuration message as a partial object; receiving at least a second configuration message associated with the object, said at least a second configuration message sent by the call server and containing additional information pertinent to the effective establishment of the object at the node; recording receipt of said at least a second configuration message and storing the additional information contained in said at least a second configuration message with the partial object, thereby to complete the object; and providing access to the object at the node through a verification process involving the routing object index; wherein said product is run on a computer.
Advantageously, the present invention therefore provides an improved interconnection mechanism that is more reliable than that hitherto proposed or implemented by prior art systems and techniques. More specifically, the present invention can create a network of interconnected objects used to route control messages in a telecommunications switch system, with it being irrelevant as to the order of receipt of information used to create such objects. In other words, the information used to create objects can arrive piece-by-piece over a period in separate configuration messages having no structured order of arrival. Beneficially, the system can be asked to route control messages, such as CCS7, before a complete set of objects for a connection has been created, although objects that have not be fully configured are not used.
A significant benefit arises from the flexibility of the system in relation to set-up and configuration, which benefit is associated with the ability of being frugal in terms of memory and processing utilisation. Specifically, the system of the preferred embodiment has no pre-set limit on the number of objects that it can access and create and so minimal storage capacity is used for storing network topology information. Consequently, spare memory and processing capabilities of a node, such as by an intelligent trunking peripheral within a switch, can be utilised for additional management tasks and functions, and indeed can support the future expansion of the system in terms of network size and complexity (e.g. additional features) and functionality upgrades. In fact, the memory usage of the system is therefore proportional to the complexity of the network configuration requested by the network operator.
Use of the routing object index is also beneficial in relation to algorithm and system development, since the establishment of the routing object index in an appropriate memory slot indicates that the software is, ostensibly, operational; this provides a saving in engineering design, implementation and testing time.
Advantageously, the present invention can be deployed within existing systems without disrupting present operation, with the only requirement being that the node have sufficient processing and memory capacity.